package com.study.common.ano;

import com.study.common.enums.DataSourceEnum;

import java.lang.annotation.*;

/**
 * @description: 自定义多数据源切换注解, AOP注解拦截
 * @author: LChuang
 * @date: 2023/9/6 14:35
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataSourceAnnotation {

    /**
     * 切换数据源名称
     */
    DataSourceEnum value() default DataSourceEnum.DS1;

    /*
    AOP拦截类的实现
    通过拦截上面的注解，在其执行之前处理设置当前执行SQL的数据源的信息，
    CONTEXT_HOLDER.set(dataSourceType)这里的数据源信息从我们设置的注解上面获取信息，
    如果没有设置就是用默认的数据源的信息
     */
}
